package _31define;


public class Demo2 {
    public static void main(String[] args) {
        MyArrayList list=new MyArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
    }

}
class MyArrayList{
    private Node head;

    private int size;
    // 节点结构
    private class Node{
        // 内部类
        // 数据域
        String value;
        // 指针域
        Node next;

        public Node(String value) {
            this.value = value;
        }
    }

    // 获取size的方法
    public int size() {
        return size;
    }

    // 判断是否为空的方法
    public boolean isEmpty() {
        // return head == null;
        return size == 0;
    }
    public boolean add(String value) {
        // 判断链表是否为空
        if (isEmpty()) {
            // 处理头
            // 创建新节点
            Node node = new Node(value);
            // 让新节点作为头
            head = node;
            // 表长+1
            size++;
            // 返回结果
            return true;
        }

        // 处理后续 默认添加到尾部
        // ===>找到末尾节点
        // 定义临时节点用于遍历
        Node mid = head;
        // 遍历
        while (mid.next != null) {
            // 移动mid 逻辑后移
            mid = mid.next;
        }
        // 循环结束了 mid这个节点就是尾节点
        // 创建新节点 添加到尾部
        Node node = new Node(value);
        mid.next = node;
        // 表长+1
        size++;
        // 返回结果
        return true;

    }


}
